perm filename KNOW3.AI[ESS,JMC] blob sn#005477 filedate 1971-11-29 generic text, type T, neo UTF8
00100		When we formalize knowledge, belief, and ascription, here are
00200	some of the problems that arise:
00300	
00400		1. We adopt the convention that the object of knowledge is
00500	a phrase in the our own language.  Thus 
00600	
00700		knows(John,"telephone(Pete)",s)
00800	
00900	asserts that John knows the value of the expression "telephone(Pete)"
01000	in the situation s.  The expression "telephone(Pete)" is in our
01100	language not necessarily John's.  Thus John may not speak English.
01200	Similarly we can have
01300	
01400		knows(Fido,"location(Bone1)",S1)
01500	
01600	without imagining Fido to know English or any other language.
01700	
01800		2. We use the notation
01900	
02000		value(e,p,s)
02100	
02200	to denote the value of the expression e to the person p in the
02300	situation s.  Here, as above, the situation s is the situation
02400	in which the ascription of value takes place.  If  e  itself
02500	refers to a situation that will be explicitly indicated in
02600	the expression e.
02700	
02800		Now we have the problem of what values expressions take.
02900	Can the value of an expression be a person or must it also be
03000	an expression?  It seems better to take the value of an
03100	expression to be also an expression.
03200	
03300		We may say
03400	
03500		value(Fido,"location(Bone1)",S1) = "3 meters north of Tree1".
03600	
03700	"3 meters north of Tree1" is also an expression in our language.  We
03800	shall not treat the case where the value is an expression not meaningful
03900	to us such as "East of the sun and West of the moon", and so we shall
04000	not be able to deal with other people's nonsensical belief systems.
04100	
04200		Therefore, we should probably restrict ourselves to expressions
04300	that have a value to us so that there is also
04400	
04500		value(e)
04600	
04700	the "true" value of the expression.
04800	
04900	What about
05000	
05100		value(George IV, "author(Waverley)",S)?
05200	
05300	Let us postpone this embarassment; perhaps we shall not have to deal with
05400	it in working out a knowledge system adequate for travel problems.
05500	
05600		3. Consider the assertion that the travel agent knows the best way
05700	to get from one place to another.  This may be formalized as
05800	
05900		(∀xyuv). place(u) ∧ place(v) ∧ names(x,u) ∧ names(y,v) ⊃
06000	knows(Agent1,subst(x,"x",subst(y,"y","bestway(x,y)")),S).
06100	
06200	We can instantiate the above expression as follows:
06300	
06400		place(Chicago) ∧ place(Boston) ∧ names("Chicago",Chicago) ∧
06500	names("Boston",Boston) ⊃ knows(Agent1,
06600	subst("Chicago","x",subst("Boston","y","bestway(x,y)")),S).
06700	
06800		If we take names("Chicago",Chicago) and names("Boston",Boston)
06900	as instances of a suitable axiom schema, take place(Boston) and
07000	place(Chicago) as axioms, and perform the indicated substitution, then
07100	we can deduce
07200	
07300		knows(Agent1,"bestway(Chicago,Boston",S).
07400	
07500		Suppose the travel agent believes that all roads lead to Rome and 
07600	hence that the best way to get from u to v is to go from u to Rome by
07700	chariot and then from Rome to v by chariot.  We formalize this by saying
07800	
07900		(∀xyuv) place(u) ∧ place(v) ∧ names(x,u) ∧ names(y,v) ⊃
08000	value(Agent1,subst(x,"x",subst(y,"y","bestway(x,y)")),S1) =
08100	subst(x,"x",subst(y,"y","sequence(go(x,Rome),go(Rome,y))")).
08200	
08300		The names(x,u) relation seems to be necessary when we want to
08400	make quantified statements.  The formalism is clumsy in its explicit
08500	use of symbolic computation in the substitutions, but other notations,
08600	especially modal ones seem to me to fall down when we try to express
08700	such generalizations.
08800	
08900		4. The above example is one of the simplest cases of the assertion
09000	that a person knows how to do something and the assertion of a persons
09100	way of doing something.  In general, a way of doing something is a program,
09200	and we need a programming language in order to describe peoples ways of
09300	doing things.  Again we emphasize that the programming language is ours
09400	and not necessarily the knowers, i.e. we can describe Fido's way of
09500	burying a bone without Fido having to know Algol.
09600	
09700		5. Suppose we want to express the idea that George cannot call
09800	John immediately because he doesn't know his telephone number, but that
09900	if Mike tells George the number, then George will be able to do it.
10000	We first need to express the fact that if George dials John's number,
10100	he will thereby call John, and also that George has the telephone and
10200	so can dial any number he wants to.  
10300	
10400	
10500		6. Back to "George IV wondered whether Walter Scott was the 
10600	author of Waverley".  We shall write it
10700	
10800		wonders(G4,"Sir Walter Scott = author(Waverley)",S).